package com.yugao.fintech.antelope.system.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yugao.fintech.antelope.system.model.entity.SysOperateLog;
import com.yugao.fintech.antelope.system.model.rqrs.log.OperateLogDeleteReq;
import com.yugao.fintech.antelope.system.model.rqrs.log.OperateLogPageReq;
import com.yugao.fintech.antelope.system.model.rqrs.log.OperateLogSaveReq;

import java.util.List;


/**
 * 操作日志 服务层
 * 

 */
public interface SysOperateLogService {
    /**
     * 新增操作日志
     * 
     * @param req 操作日志对象
     * @return 结果
     */
    boolean save(OperateLogSaveReq req);

    IPage<SysOperateLog> pageOperateLog(OperateLogPageReq req);

    /**
     * 查询系统操作日志集合
     * 
     * @param rq 操作日志对象
     * @return 操作日志集合
     */
    List<SysOperateLog> listOperateLog(SysOperateLog rq);

    /**
     * 批量删除系统操作日志
     * 
     * @param operateIds 需要删除的操作日志ID
     * @return 结果
     */
    boolean deleteBatch(Long[] operateIds);

    /**
     * 删除日志, 会根据参数进行删除, 比如删除30天之前的日志
     */
    boolean delete(OperateLogDeleteReq req);

    /**
     * 查询操作日志详细
     * 
     * @param operateId 操作ID
     * @return 操作日志对象
     */
    SysOperateLog get(Long operateId);

    /**
     * 清空操作日志
     */
    void clear();
}
